package org.linjie.cocacola.yiluchunyue2019.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.emallos.xiama.support.domain.BaseModel;

import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
import java.math.BigDecimal;

/**
 * 
 *
 * @author cnlinjie@foxmail.com
 */
@Table(name = "member")
@Entity
@Getter
@NoArgsConstructor
public class MemberModel  extends BaseModel<MemberModel> {

    
    
    //  openid
    private  String wxOpenId;
    
    
    //  unionid
    private  String wxUnionId;
    
    
    //  头像
    private  String wxHeadImg;
    
    
    //  昵称
    private  String wxNickname;
    
    
    //  真实姓名
    private  String realname;
    
    
    //  性别
    private  String gender;
    
    
    //  手机号
    private  String phone;
    
    
    //  年龄
    private  Integer age;
    
    
    //  紧急联系人
    private  String sosRealname;
    
    
    //  紧急联系电话
    private  String sosPhone;
    
    
    //  身份号码
    private  String cardId;
    
    
    //  生日
    private  String birthday;
    
    
    //  证件类型
    private  String cardType;
    
    
    //  衣服大小
    private  String clothesSize;
    
    
    //  押金支付状态 （0 未支付，1 已支付）
    private  Integer depositPayStatus;
    
    
    //  捐款总数
    private  BigDecimal donationTotal;
    
    
    //  捐款总数
    private  BigDecimal bringDonationTotal;
    
    
    //  未读消息
    private  Integer unreadMessage;
    
    
    //  未操作消息
    private  Integer unoperMessage;
    
    
    //  添加方式，默认0 -> 自动注册，1 -> 手动添加，2 -> 导入 
    private  Integer fromSource;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    
    //  最后查看消息时间
    private  Date lastMessage;
    
    
    //  备注
    private  String note;
    
    
    //  组织
    private  String org;

    /**
     * 创建
     * @param wxOpenId  openid
     * @param wxUnionId  unionid
     * @param wxHeadImg  头像
     * @param wxNickname  昵称
     * @param realname  真实姓名
     * @param gender  性别
     * @param phone  手机号
     * @param age  年龄
     * @param sosRealname  紧急联系人
     * @param sosPhone  紧急联系电话
     * @param cardId  身份号码
     * @param birthday  生日
     * @param cardType  证件类型
     * @param clothesSize  衣服大小
     * @param depositPayStatus  押金支付状态 （0 未支付，1 已支付）
     * @param donationTotal  捐款总数
     * @param bringDonationTotal  捐款总数
     * @param unreadMessage  未读消息
     * @param unoperMessage  未操作消息
     * @param fromSource  添加方式，默认0 -> 自动注册，1 -> 手动添加，2 -> 导入 
     * @param lastMessage  最后查看消息时间
     * @param note  备注
     * @param org  组织
     */
    public MemberModel (String wxOpenId,String wxUnionId,String wxHeadImg,String wxNickname,String realname,String gender,String phone,Integer age,String sosRealname,String sosPhone,String cardId,String birthday,String cardType,String clothesSize,Integer depositPayStatus,BigDecimal donationTotal,BigDecimal bringDonationTotal,Integer unreadMessage,Integer unoperMessage,Integer fromSource,Date lastMessage,String note,String org) {
        this.wxOpenId=wxOpenId;
        this.wxUnionId=wxUnionId;
        this.wxHeadImg=wxHeadImg;
        this.wxNickname=wxNickname;
        this.realname=realname;
        this.gender=gender;
        this.phone=phone;
        this.age=age;
        this.sosRealname=sosRealname;
        this.sosPhone=sosPhone;
        this.cardId=cardId;
        this.birthday=birthday;
        this.cardType=cardType;
        this.clothesSize=clothesSize;
        this.depositPayStatus=depositPayStatus;
        this.donationTotal=donationTotal;
        this.bringDonationTotal=bringDonationTotal;
        this.unreadMessage=unreadMessage;
        this.unoperMessage=unoperMessage;
        this.fromSource=fromSource;
        this.lastMessage=lastMessage;
        this.note=note;
        this.org=org;
    }

    /**
     * 全量更新
     * @param wxOpenId  openid
     * @param wxUnionId  unionid
     * @param wxHeadImg  头像
     * @param wxNickname  昵称
     * @param realname  真实姓名
     * @param gender  性别
     * @param phone  手机号
     * @param age  年龄
     * @param sosRealname  紧急联系人
     * @param sosPhone  紧急联系电话
     * @param cardId  身份号码
     * @param birthday  生日
     * @param cardType  证件类型
     * @param clothesSize  衣服大小
     * @param depositPayStatus  押金支付状态 （0 未支付，1 已支付）
     * @param donationTotal  捐款总数
     * @param bringDonationTotal  捐款总数
     * @param unreadMessage  未读消息
     * @param unoperMessage  未操作消息
     * @param fromSource  添加方式，默认0 -> 自动注册，1 -> 手动添加，2 -> 导入 
     * @param lastMessage  最后查看消息时间
     * @param note  备注
     * @param org  组织
     */
    public void update(String wxOpenId,String wxUnionId,String wxHeadImg,String wxNickname,String realname,String gender,String phone,Integer age,String sosRealname,String sosPhone,String cardId,String birthday,String cardType,String clothesSize,Integer depositPayStatus,BigDecimal donationTotal,BigDecimal bringDonationTotal,Integer unreadMessage,Integer unoperMessage,Integer fromSource,Date lastMessage,String note,String org) {
        this.wxOpenId=wxOpenId;
        this.wxUnionId=wxUnionId;
        this.wxHeadImg=wxHeadImg;
        this.wxNickname=wxNickname;
        this.realname=realname;
        this.gender=gender;
        this.phone=phone;
        this.age=age;
        this.sosRealname=sosRealname;
        this.sosPhone=sosPhone;
        this.cardId=cardId;
        this.birthday=birthday;
        this.cardType=cardType;
        this.clothesSize=clothesSize;
        this.depositPayStatus=depositPayStatus;
        this.donationTotal=donationTotal;
        this.bringDonationTotal=bringDonationTotal;
        this.unreadMessage=unreadMessage;
        this.unoperMessage=unoperMessage;
        this.fromSource=fromSource;
        this.lastMessage=lastMessage;
        this.note=note;
        this.org=org;
    }

}
